package com.ruoyi.common.annotation;

import com.ruoyi.common.enums.ConvertType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 字段内容转换注解-子注解
 *
 * @author yr
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ConvertFieldItem {

    /**
     * 转换类型
     */
    ConvertType type() default ConvertType.CONSTANT;

    /**
     * 需要转换的字段名
     * 辅助字段名为空时，转换后的值直接覆盖此字段 例如：fieldName=userId,fieldName=userName)
     * 辅助字段名不为空时，转换后的值覆盖辅助字段 例如：fieldName=userId,assistFieldName=userName)
     */
    String fieldName() default "";

    /**
     * 辅助字段名
     */
    String assistFieldName() default "";

    /**
     * 字典类型
     * （当转换类型为字典时使用且不允许为空
     * 如果值为#{***}格式，则取***字段的值作为字典类型）
     */
    String dictType() default "";

    /**
     * 常量类型
     * （当转换类型为常量时使用且不允许为空
     * 格式为：
     * {"key1:value1","key2:value2"}
     */
    String[] constantValue() default {};

}
